import java.util.ArrayList;

public class Test {

    //1,该方法能养所有品种的猫,但是不能养狗
//    public static void keepPet(ArrayList<? extends Cat> list){
//        //遍历集合,调用动物的eat方法
//        for (Cat c : list) {
//            c.eat();
//        }
//    }

    //2,该方法能养所有品种的狗,但是不能养猫
//    public static void keepPet(ArrayList<? extends Dog> list){
//        //遍历集合,调用动物的eat方法
//        for (Dog d : list) {
//            d.eat();
//        }
//    }

    //3,该方法能养所有品种的动物,但是不能传递其他类型
    public static void keepPet(ArrayList<? extends Animal> list){
        //遍历集合,调用动物的eat方法
        for (Animal animal : list) {
            animal.eat();
        }
    }

    public static void main(String[] args) {
        //创建一个波斯猫对象
        PersianCat p = new PersianCat();
        p.setName("小花");
        p.setAge(10);

        //创建一个狸花猫对象
        LiHuaCat l = new LiHuaCat();
        l.setName("小狸");
        l.setAge(21);

        //创建一个哈士奇对象
        HuskyDog h = new HuskyDog();
        h.setName("小黑");
        h.setAge(22);

        //创建一个泰迪对象
        TeddyDog t = new TeddyDog();
        t.setName("小泰");
        t.setAge(16);

       ArrayList<PersianCat> l1 = new ArrayList<>();
       ArrayList<LiHuaCat> l2 = new ArrayList<>();
       ArrayList<HuskyDog> l3 = new ArrayList<>();

        keepPet(l1);
        keepPet(l2);
        keepPet(l3);
    }
}